package domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import documents.DocPublicacion;

public class Subasta extends Publicacion {

	private Integer precioMin;
	private Date fechaFin;
	private List<Oferta> ofertas = new ArrayList<Oferta>();

	public Subasta(Usuario usuario, String nombre, String descripcion, Integer precioMin, Date fechaFin) {
		super(usuario, nombre, descripcion);
		this.precioMin = precioMin;
		this.fechaFin = fechaFin;
		this.ofertas.add(new Oferta(null, precioMin));
	}
	
	public Subasta(DocPublicacion p) {
		super(p.getUsuario(), p.getNombre(), p.getDescripcion());
		this.precioMin = p.getPrecio();
		this.fechaFin = p.getFechaFin();
		this.ofertas = p.getOfertas();
	}

	@Override
	public void ofertar(Usuario user) {
		Oferta ofert = new Oferta(user,this.getPrecioDeUltimaOferta() + 1);
		this.getOfertas().add(ofert);
	}

	private Integer getPrecioDeUltimaOferta() {
		return this.getUltimaOferta().getMonto();
		
	}
	
	public List<Oferta> getOfertas(){
		return this.ofertas;
	}

	@Override
	public Usuario getComprador() {
		return this.getUltimaOferta().getUsuario();
	}

	private Oferta getUltimaOferta() {
		return this.getOfertas().get(this.getOfertas().size() - 1);
	}

	public Integer getPrecioMin() {
		return precioMin;
	}

	public Date getFechaFin() {
		return fechaFin;
	}

	@Override
	public String getType() {
		return "SUBASTA";
	}

	@Override
	public Integer getPrecio() {
		return this.getPrecioDeUltimaOferta();
	}

	public void setOfertas(List<Oferta> ofertas) {
		this.ofertas = ofertas;
	}
	
	
}
